<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Zend_Service_WindowsAzure_Diagnostics_Manager - Zend Framework Manual</title>

    <link href="../css/shCore.css" rel="stylesheet" type="text/css" />
    <link href="../css/shThemeDefault.css" rel="stylesheet" type="text/css" />
    <link href="../css/styles.css" media="all" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>Zend Framework</h1>
<h2>Programmer's Reference Guide</h2>
<ul>
    <li><a href="../en/zend.service.windowsazure.diagnostics.manager.html">Inglês (English)</a></li>
    <li><a href="../pt-br/zend.service.windowsazure.diagnostics.manager.html">Português Brasileiro (Brazilian Portuguese)</a></li>
</ul>
<table width="100%">
    <tr valign="top">
        <td width="85%">
            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.service.windowsazure.storage.blob.html">Zend_Service_WindowsAzure_Storage_Blob</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.service.html">Zend_Service</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.service.windowsazure.storage.queue.html">Zend_Service_WindowsAzure_Storage_Queue</a></div>
                    </td>
                </tr>
            </table>
<hr />
<div id="zend.service.windowsazure.diagnostics.manager" class="section"><div class="info"><h1 class="title">Zend_Service_WindowsAzure_Diagnostics_Manager</h1></div>
    

    <p class="para">
        Blob Storage stores sets of binary data. Blob storage offers the following three
        Windows Azure Diagnostics enables you to collect diagnostic data from a service
        running in Windows Azure. It can be used for tasks like debugging and
        troubleshooting, measuring performance, monitoring resource usage, traffic
        analysis, capacity planning, and auditing. Once collected, diagnostic data can be
        transferred to a Windows Azure storage account for persistence. Transfers can
        either be scheduled or on-demand.
    </p>

    <p class="para">
        You can configure Windows Azure Diagnostics from code running within a role. You
        can also configure it remotely from an application running outside of the Windows
        Azure; for example, you can manage Windows Azure Diagnostics from a custom
        dashboard application running locally. By managing Windows Azure Diagnostics
        remotely, you can start your service with an initial diagnostic configuration,
        and then tweak that configuration from code running outside of your service,
        without having to upgrade your service.
    </p>

    <p class="para">
        More information on which logs, performance counters, crash dumps, ...
        can be monitored can be found on the <a href="http://msdn.microsoft.com/en-us/library/ee758705(v=MSDN.10).aspx" class="link external">&raquo; 
        corresponding MSDN web page</a>.
    </p>

    <p class="para">
        Note: Diagnostics are configured on a per-role basis. This means that each
        role should be configured separately. Specifying diagnostics instructions
        for one role instance does not imply this configuration is loaded on other
        role instances.
    </p>

    <p class="para">
        Note: Diagnostics are configured on a per-role basis. This means that each
        The Diagnostics API in the Windows Azure SDK for PHP can only be used when
        the DiagnosticsMonitor has been started during role startup. Currently,
        this is only supported when an application is packaged with the Windows
        Azure Command-line Tools for PHP Developers.
    </p>

    <div class="section" id="zend.service.windowsazure.diagnostics.manager.api"><div class="info"><h1 class="title">API Examples</h1></div>
        

        <p class="para">
            This topic lists some examples of using the
            <span class="classname">Zend_Service_WindowsAzure_Diagnostics_Manager</span> class.  Other features are
            available in the download package, as well as a detailed API documentation of those
            features.
        </p>

        <div class="section" id="zend.service.windowsazure.diagnostics.manager.api.config-exists"><div class="info"><h1 class="title">Checking if a diagnostics configuration for the current role instance exists</h1></div>
            

            <p class="para">
                Using the following code, you can check if a diagnostics configuration for the
                current role instance exists.
            </p>

            <div class="example" id="zend.service.windowsazure.diagnostics.manager.api.config-exists.example"><div class="info"><p><b>Example #1 Checking if a diagnostics configuration for the current role instance exists</b></p></div>
                

                <pre class="programlisting brush: php">
/** Zend_Service_WindowsAzure_Storage_Blob */
require_once &#039;Zend/Service/WindowsAzure/Storage/Blob.php&#039;;

/** Zend_Service_WindowsAzure_Diagnostics_Manager */
require_once &#039;Zend/Service/WindowsAzure/Diagnostics/Manager.php&#039;;

$storageClient = new Zend_Service_WindowsAzure_Storage_Blob();
$manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient);

$configurationExists = $manager-&gt;configurationForCurrentRoleInstanceExists();

echo &#039;The configuration &#039; . ($configurationExists ? &#039;exists&#039; : &#039;does not exist&#039;;
</pre>

            </div>
        </div>

        <div class="section" id="zend.service.windowsazure.diagnostics.manager.api.config-load"><div class="info"><h1 class="title">Loading the current role instance diagnostics configuration</h1></div>
            

            <p class="para">
                Using the following code, you can load the current role instance diagnostics
                configuration.
            </p>

            <div class="example" id="zend.service.windowsazure.diagnostics.manager.api.config-load.example"><div class="info"><p><b>Example #2 Loading the current role instance diagnostics configuration</b></p></div>
                

                <pre class="programlisting brush: php">
/** Zend_Service_WindowsAzure_Storage_Blob */
require_once &#039;Zend/Service/WindowsAzure/Storage/Blob.php&#039;;

/** Zend_Service_WindowsAzure_Diagnostics_Manager */
require_once &#039;Zend/Service/WindowsAzure/Diagnostics/Manager.php&#039;;

$storageClient = new Zend_Service_WindowsAzure_Storage_Blob();
$manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient);

$configuration = $manager-&gt;getConfigurationForCurrentRoleInstance();
</pre>

            </div>
        </div>

        <div class="section" id="zend.service.windowsazure.diagnostics.manager.api.config-store"><div class="info"><h1 class="title">Storing the current role instance diagnostics configuration</h1></div>
            

            <p class="para">
                Using the following code, you can store the current role instance diagnostics
                configuration.
            </p>

            <div class="example" id="zend.service.windowsazure.diagnostics.manager.api.config-store.example"><div class="info"><p><b>Example #3 Storing the current role instance diagnostics configuration</b></p></div>
                

                <pre class="programlisting brush: php">
/** Zend_Service_WindowsAzure_Storage_Blob */
require_once &#039;Zend/Service/WindowsAzure/Storage/Blob.php&#039;;

/** Zend_Service_WindowsAzure_Diagnostics_Manager */
require_once &#039;Zend/Service/WindowsAzure/Diagnostics/Manager.php&#039;;

$storageClient = new Zend_Service_WindowsAzure_Storage_Blob();
$manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient);

$configuration = // ...;
$manager-&gt;setConfigurationForCurrentRoleInstance($configuration);
</pre>

            </div>
        </div>

        <div class="section" id="zend.service.windowsazure.diagnostics.manager.api.config-perf"><div class="info"><h1 class="title">Subscribing to a performance counter</h1></div>
            

            <p class="para">
                Using the following code, you can subscribe to a performance counter.
            </p>

            <div class="example" id="zend.service.windowsazure.diagnostics.manager.api.config-perf.example"><div class="info"><p><b>Example #4 Subscribing to a performance counter</b></p></div>
                

                <pre class="programlisting brush: php">
/** Zend_Service_WindowsAzure_Storage_Blob */
require_once &#039;Zend/Service/WindowsAzure/Storage/Blob.php&#039;;

/** Zend_Service_WindowsAzure_Diagnostics_Manager */
require_once &#039;Zend/Service/WindowsAzure/Diagnostics/Manager.php&#039;;

$storageClient = new Zend_Service_WindowsAzure_Storage_Blob();
$manager = new Zend_Service_WindowsAzure_Diagnostics_Manager($storageClient);

$configuration = $manager-&gt;getConfigurationForCurrentRoleInstance();

// Subscribe to \Processor(*)\% Processor Time
$configuration-&gt;DataSources-&gt;PerformanceCounters-&gt;addSubscription(&#039;\Processor(*)\% Processor Time&#039;, 1);

$manager-&gt;setConfigurationForCurrentRoleInstance($configuration);
</pre>

            </div>
        </div>

        <div class="section" id="zend.service.windowsazure.diagnostics.manager.api.config-roleid"><div class="info"><h1 class="title">Getting the current role instance id</h1></div>
            

            <p class="para">
                The current role instance id is defined in the server variable
                RdRoleId. It will only be available when the application is run in
                Development Fabric or Windows Azure Fabric.
            </p>

            <div class="example" id="zend.service.windowsazure.diagnostics.manager.api.config-roleid.example"><div class="info"><p><b>Example #5 Getting the current role instance id</b></p></div>
                

                <pre class="programlisting brush: php">
echo &#039;The role instance id is &#039; . $_SERVER[&#039;RdRoleId&#039;];
</pre>

            </div>
        </div>
    </div>
</div>
        <hr />

            <table width="100%">
                <tr>
                    <td width="25%" style="text-align: left;">
                    <a href="zend.service.windowsazure.storage.blob.html">Zend_Service_WindowsAzure_Storage_Blob</a>
                    </td>

                    <td width="50%" style="text-align: center;">
                        <div class="up"><span class="up"><a href="zend.service.html">Zend_Service</a></span><br />
                        <span class="home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></span></div>
                    </td>

                    <td width="25%" style="text-align: right;">
                        <div class="next" style="text-align: right; float: right;"><a href="zend.service.windowsazure.storage.queue.html">Zend_Service_WindowsAzure_Storage_Queue</a></div>
                    </td>
                </tr>
            </table>
</td>
        <td style="font-size: smaller;" width="15%"> <style type="text/css">
#leftbar {
	float: left;
	width: 186px;
	padding: 5px;
	font-size: smaller;
}
ul.toc {
	margin: 0px 5px 5px 5px;
	padding: 0px;
}
ul.toc li {
	font-size: 85%;
	margin: 1px 0 1px 1px;
	padding: 1px 0 1px 11px;
	list-style-type: none;
	background-repeat: no-repeat;
	background-position: center left;
}
ul.toc li.header {
	font-size: 115%;
	padding: 5px 0px 5px 11px;
	border-bottom: 1px solid #cccccc;
	margin-bottom: 5px;
}
ul.toc li.active {
	font-weight: bold;
}
ul.toc li a {
	text-decoration: none;
}
ul.toc li a:hover {
	text-decoration: underline;
}
</style>
 <ul class="toc">
  <li class="header home"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="manual.html">Guia de Refer&ecirc;ncia do Programador</a></li>
  <li class="header up"><a href="reference.html">Refer&ecirc;ncia do Zend Framework</a></li>
  <li class="header up"><a href="zend.service.html">Zend_Service</a></li>
  <li><a href="zend.service.introduction.html">Introdu&ccedil;&atilde;o</a></li>
  <li><a href="zend.service.akismet.html">Zend_Service_Akismet</a></li>
  <li><a href="zend.service.amazon.html">Zend_Service_Amazon</a></li>
  <li><a href="zend.service.amazon.ec2.html">Zend_Service_Amazon_Ec2</a></li>
  <li><a href="zend.service.amazon.ec2.instance.html">Zend_Service_Amazon_Ec2: Instances</a></li>
  <li><a href="zend.service.amazon.ec2.windows.instance.html">Zend_Service_Amazon_Ec2: Windows Instances</a></li>
  <li><a href="zend.service.amazon.ec2.reserved.instance.html">Zend_Service_Amazon_Ec2: Reserved Instances</a></li>
  <li><a href="zend.service.amazon.ec2.cloudwatch.html">Zend_Service_Amazon_Ec2: CloudWatch Monitoring</a></li>
  <li><a href="zend.service.amazon.ec2.images.html">Zend_Service_Amazon_Ec2: Amazon Machine Images (AMI)</a></li>
  <li><a href="zend.service.amazon.ec2.ebs.html">Zend_Service_Amazon_Ec2: Elastic Block Storage (EBS)</a></li>
  <li><a href="zend.service.amazon.ec2.elasticip.html">Zend_Service_Amazon_Ec2: Elastic IP Addresses</a></li>
  <li><a href="zend.service.amazon.ec2.keypairs.html">Zend_Service_Amazon_Ec2: Keypairs</a></li>
  <li><a href="zend.service.amazon.ec2.zones.html">Zend_Service_Amazon_Ec2: Regions and Availability Zones</a></li>
  <li><a href="zend.service.amazon.ec2.securitygroups.html">Zend_Service_Amazon_Ec2: Security Groups</a></li>
  <li><a href="zend.service.amazon.s3.html">Zend_Service_Amazon_S3</a></li>
  <li><a href="zend.service.amazon.sqs.html">Zend_Service_Amazon_Sqs</a></li>
  <li><a href="zend.service.audioscrobbler.html">Zend_Service_Audioscrobbler</a></li>
  <li><a href="zend.service.delicious.html">Zend_Service_Delicious</a></li>
  <li><a href="zend.service.developergarden.html">Zend_Service_DeveloperGarden</a></li>
  <li><a href="zend.service.ebay.html">Zend_Service_Ebay</a></li>
  <li><a href="zend.service.ebay.finding.html">Zend_Service_Ebay_Finding</a></li>
  <li><a href="zend.service.flickr.html">Zend_Service_Flickr</a></li>
  <li><a href="zend.service.livedocx.html">Zend_Service_LiveDocx</a></li>
  <li><a href="zend.service.nirvanix.html">Zend_Service_Nirvanix</a></li>
  <li><a href="zend.service.recaptcha.html">Zend_Service_ReCaptcha</a></li>
  <li><a href="zend.service.short-url.html">Zend_Service_ShortUrl</a></li>
  <li><a href="zend.service.simpy.html">Zend_Service_Simpy</a></li>
  <li><a href="zend.service.slideshare.html">Zend_Service_SlideShare</a></li>
  <li><a href="zend.service.strikeiron.html">Zend_Service_StrikeIron</a></li>
  <li><a href="zend.service.strikeiron.bundled-services.html">Zend_Service_StrikeIron: Bundled Services</a></li>
  <li><a href="zend.service.strikeiron.advanced-uses.html">Zend_Service_StrikeIron: Advanced Uses</a></li>
  <li><a href="zend.service.technorati.html">Zend_Service_Technorati</a></li>
  <li><a href="zend.service.twitter.html">Zend_Service_Twitter</a></li>
  <li><a href="zend.service.windowsazure.html">Zend_Service_WindowsAzure</a></li>
  <li><a href="zend.service.windowsazure.storage.blob.html">Zend_Service_WindowsAzure_Storage_Blob</a></li>
  <li class="active"><a href="zend.service.windowsazure.diagnostics.manager.html">Zend_Service_WindowsAzure_Diagnostics_Manager</a></li>
  <li><a href="zend.service.windowsazure.storage.queue.html">Zend_Service_WindowsAzure_Storage_Queue</a></li>
  <li><a href="zend.service.windowsazure.storage.table.html">Zend_Service_WindowsAzure_Storage_Table</a></li>
  <li><a href="zend.service.yahoo.html">Zend_Service_Yahoo</a></li>
 </ul>
 </td>
    </tr>
</table>

<script type="text/javascript" src="../js/shCore.js"></script>
<script type="text/javascript" src="../js/shAutoloader.js"></script>
<script type="text/javascript" src="../js/main.js"></script>

</body>
</html>